#pragma once
#include <iostream>

#include <fstream>
#include <ostream>
#include <istream>
#include <vector>
#include <queue>
#include <map>
#include <list>
#include <cstring>

#define SQRT_3 1.732050807569

#include <glm/common.hpp>
#include <glm/gtx/euler_angles.hpp>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtx/matrix_decompose.hpp>
#include <glm/gtx/norm.hpp>

namespace Math
{

	struct Transform;
	struct Viewport;
	struct Camera;
	struct OrthoCamera;
	struct Frustum;

}

using namespace Math;

using Vec3 = glm::vec3;
using Vec2 = glm::vec2;
using Vec4 = glm::vec4;
using Mat4 = glm::mat4;
using Quat = glm::quat;
